Feedback estimation of joint forces and joint moments

ABSTRACT

Apparatus and methods are provided for estimating joint forces and moments in human beings. A forward dynamics module determines simulated kinematic data. An error correction controller forces tracking error between the simulated kinematic data and measured (or desired) kinematic data to approach zero. The error correction controller generates a modified acceleration for input into an inverse dynamics module. The estimated joint forces and moments track the measured (or desired) kinematics without the errors associated with computing higher order derivatives of noisy kinematic data.

CROSS-REFERENCE TO RELATED APPLICATIONS

[0001] This application is related to U.S. provisional patent application serial no. 60/301,891, filed on Jun. 29, 2001, entitled “A recursive, nonlinear feedback approach to estimate joint forces and joint moments from kinesiological measurements,” and U.S. provisional patent application serial no. 60/353,378, filed on Jan. 31, 2002, entitled “Forward solutions to inverse dynamics problems: a feedback linearization approach,” from which priority is claimed under 35 U.S.C. §119(e) and both of which are incorporated by reference herein in their entireties.

BACKGROUND OF THE INVENTION

[0002] A. Field of the Invention

[0003] This invention relates to human motion analysis and, more particularly, to analysis of joint forces and moments using nonlinear feedback in a forward dynamic simulation.

[0004] B. Description of Background Art

[0005] In the study of human motion, inverse dynamics analysis is conventionally used to estimate joint forces and joint moments. In a conventional inverse dynamics analysis, joint forces and joint moments are calculated from the observation of segmental movement. Inverse dynamics analysis is conventionally applied to biomechanics problems because the internal forces of human joints cannot be readily measured. Segmental movements, however, can be measured and joint angles can be inferred from the measured displacement to determine the corresponding joint forces and torques.

[0006] A problem with using inverse dynamics in the study of human motion is the error caused by calculating higher order derivatives to determine joint forces and joint moments. Methods for using inverse dynamics concepts in biomechanics are well developed if the input signals are noise-free and the dynamic model is perfect. Experimental observations, however, are imperfect and contaminated by noise. Sources of noise include the measurement device and the joint itself. Inverse dynamics methods for calculating joint moments require the calculation of higher order derivatives of the experimental observations. Specifically, the angular acceleration term is the second derivative of the joint angle and the linear acceleration is the second derivative of the center of mass acceleration. Numerical differentiation of the experimental observations amplifies the noise. The presence of high frequency noise is of considerable importance when considering the problem of calculating velocities and accelerations. The amplitude of each of the harmonics increases with its harmonic number: velocities increase linearly, and accelerations increase proportional to the square of the harmonic number. For example, second order differentiation of a signal with high frequency noise ω can result in a signal with frequency components of ω². The result of this parabolic noise amplification is erroneous joint force and joint moment calculations.

[0007] Although techniques exist for filtering the noise, filtering is difficult and time-consuming because much analysis is required to separate the true signal in the biomechanical data from the noise. For example, low-pass filtering is commonly used to reduce high frequency errors. A difficulty in low-pass filtering, however, is the selection of an optimal cutoff frequency f_(c). Because there is no general solution for selecting optimal filter parameters, filtering techniques often produce unreliable results.

[0008] Optimization-based approaches have been proposed to estimate joint forces and joint moments without the errors associated with performing a conventional inverse dynamics analysis. Unlike inverse dynamics, optimization-based methods do not require numerical differentiation. However, the application of optimization-based solutions is limited because the methods are computationally expensive, are not guaranteed to converge, and are generally too complex to implement.

[0009] Another problem with using inverse dynamics for analyzing human motion is that the inverse technique lacks the capability to predict the behavior of novel motions. In inverse dynamics, forces and moments are calculated from observed responses. The prediction of novel motions involves calculating the response expected from the application of forces and moments. An inverse dynamics analysis lacks predictive capability because forces and moments are calculated rather than the expected response from the application of those forces and moments.

[0010] What is therefore needed is a computationally efficient system and method that: (1) estimates joint forces and joint moments without the errors due to higher order derivatives; (2) does not require closed form, whole body analysis; and (3) is useful for predicting the behavior of human motions.

SUMMARY OF THE INVENTION

[0011] One embodiment of the present invention provides an estimation of joint loads in human beings. A joint load includes the forces and moments acting at a joint. A forward dynamics module determines kinematics through numerical integration (or simulation) of the dynamic equations of motion. An error correction controller forces a tracking error between the kinematics obtained from forward simulation and measured (or desired) kinematics to approach zero. The error correction controller generates a modified acceleration for input into an inverse dynamics module. In an embodiment, the modified acceleration represents a value determined without taking the second derivative of the measured (or desired) kinematic data. The estimated joint load, therefore, when applied to the forward dynamics module, tracks the measured (or desired) kinematics without the errors associated with computing higher order derivatives of noisy kinematic data.

[0012] In another embodiment, joint loads are recursively estimated for a planar serial link system. In a recursive method, one starts at a first end of a serial chain of segments and calculates joint loads towards a second end of the serial chain. Segments in the chain are connected together by joints and the reaction forces and moments at the joint are shared by the two connected segments. The joint loads estimated for a first segment are used in the estimation for the next segment until the joint or joints in interest are reached. That is, the output of a recursion is a force and moment calculation at the connection point for the next segment. This output is used as an input for the analysis of the next segment. A recursive method, therefore, does not require modeling the dynamics of the whole body. Although in a particular case it may be desirable to model recursively whole body dynamics, the recursive method provides flexibility that can reduce sources of error.

[0013] Recursive embodiments include open chain estimations and closed chain estimations. An open chain system is constrained with the environment at one end, and the remaining terminal segments are free. A closed chain system has more than one end in contact with the environment. The segments of the link system are numbered in order of recursion beginning with segment 1 toward segment n, which is the last segment of interest. Segment n is not necessarily the last segment in the multi-body system. Rather segment n is denoted the segment at which it is desired to stop the recursive computation such that the forces and moments of interest are found. In order to initiate the recursion, one requires the force and moment acting at the first segment. For example, in human motion analysis, the ground reaction forces under the feet are typically measured and initiate the recursion equations. The use of the ground reaction forces improves the precision of joint load estimates at the joints in proximity to the ground.

[0014] In a further embodiment, the tracking system of the present invention can be applied to closed f6rm dynamics. The closed form system equations for an unconstrained rigid body system are described by n differential equations. Similar to the recursive embodiments described herein, a control law is used to linearize and to decouple the system dynamics.

[0015] Further features of the invention, its nature and various advantages will be more apparent from the accompanying drawings and the following detailed description.

BRIEF DESCRIPTION OF THE DRAWINGS

[0016] The accompanying drawings, which are incorporated in and constitute a part of this specification, illustrate several embodiments in accordance with the present invention and, together with the description, serve to explain the principles of the invention.

[0017]FIG. 1 is an illustration of how a recursive calculation can be used to separate lower body dynamics from upper body dynamics.

[0018]FIG. 2 is a free body diagram of forces acting on segments in an open chain, planar serial link system.

[0019]FIG. 3 is a free body diagram of one segment within the serial link system.

[0020]FIG. 4 is a block diagram of a tracking system for link segment i.

[0021]FIG. 5 is a block diagram of a tracking system for link segment i illustrating further details of an error correction controller.

[0022]FIG. 6 is a flowchart illustrating a recursive tracking process.

[0023]FIG. 7 is a free body diagram illustrating a three segment, two-dimensional system.

[0024] FIGS. 8A-8C are graphs illustrating tracking accuracy for the displacement of the ankle joint of FIG. 7 using small feedback gains and ignoring accelerations.

[0025] FIGS. 9A-9C are graphs illustrating tracking accuracy for the displacement of the knee joint of FIG. 7 using small feedback gains and ignoring accelerations.

[0026] FIGS. 10A-10C are graphs illustrating tracking accuracy for the forces and moments of the knee joint of FIG. 7 using small feedback gains and ignoring accelerations.

[0027] FIGS. 11A-11C are graphs illustrating tracking accuracy for the forces and moments of the hip joint of FIG. 7 using small feedback gains and ignoring accelerations.

[0028] FIGS. 12A-12C are graphs illustrating tracking accuracy for the displacement of the ankle joint of FIG. 7 using small feedback gains and including accelerations.

[0029] FIGS. 13A-13C are graphs illustrating tracking accuracy for the displacement of the knee joint of FIG. 7 using small feedback gains and including accelerations.

[0030] FIGS. 14A-14C are graphs illustrating tracking accuracy for the forces and moments of the knee joint of FIG. 7 using small feedback gains and including accelerations.

[0031] FIGS. 15A-15C are graphs illustrating tracking accuracy for the forces and moments of the hip joint of FIG. 7 using small feedback gains and including accelerations.

[0032] FIGS. 16A-16C are graphs illustrating tracking accuracy for the displacement of the ankle joint of FIG. 7 using large feedback gains and ignoring accelerations.

[0033] FIGS. 17A-17C are graphs illustrating tracking accuracy for the displacement of the knee joint of FIG. 7 using large feedback gains and ignoring accelerations.

[0034] FIGS. 18A-18C are graphs illustrating tracking accuracy for the forces and moments of the knee joint of FIG. 7 using large feedback gains and ignoring accelerations.

[0035] FIGS. 19A-19C are graphs illustrating tracking accuracy for the forces and moments of the hip joint of FIG. 7 using large feedback gains and ignoring accelerations.

[0036] FIGS. 20A-20C are graphs illustrating tracking accuracy for the displacement of the ankle joint of FIG. 7 using large feedback gains and including accelerations.

[0037] FIGS. 21A-21C are graphs illustrating tracking accuracy for the displacement of the knee joint of FIG. 7 using large feedback gains and including accelerations.

[0038] FIGS. 22A-22C are graphs illustrating tracking accuracy for the forces and moments of the knee joint of FIG. 7 using large feedback gains and including accelerations.

[0039] FIGS. 23A-23C are graphs illustrating tracking accuracy for the forces and moments of the hip joint of FIG. 7 using large feedback gains and including accelerations.

[0040]FIG. 24 is a graph illustrating tracking error for the displacement of the ankle joint of FIG. 7.

DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS

[0041] Preferred embodiments of the present invention are now described with reference to the accompanying figures where like reference numbers indicate identical or functionally similar elements. Also in the figures, the left most digit of each reference number corresponds to the figure in which the reference number is first used.

[0042]FIG. 1 is an illustration showing how recursive calculation is used to separate lower body dynamics from upper body dynamics. The illustration includes upper body portion 105 and lower body portion 110. A segment of upper body portion 105 is illustrated with load 140. Lower body portion 110 includes segments having ankle joint 120, knee joint 125, and hip joint 130. In a recursive method for computing joint forces and moments, the upper body portion 105 can be modeled separately from the lower body portion 110. Starting with ground reaction forces 115, one can effectively isolate joints 120, 125, and 130 of lower body portion 110 as well as the associated link segment parameters, from upper body portion 105. That is, the internal forces and moments acting on joints 120, 125, and 130 can be estimated without considering the effects due to load 140 or the physical parameters of upper body portion 105, such as mass, center of mass, inertia, and segment length. These parametric uncertainties in upper body portion 105 are significant sources of error in the estimation of the internal forces and moments in the human body when using closed form, whole body dynamic procedures. In contrast to a closed form whole body solution, embodiments of a recursive solution use measurements of ground reaction forces 115 as constraints to compute recursively the joint moments from the ground and working up toward the, e.g., knee joint 125 and hip joint 130.

[0043] An advantage of using a recursive method to estimate joint forces and moments is the ability to focus on joints of interest without introducing additional sources of error. Further, a recursive method with measurements of ground reaction forces 115 as input, for example, provides an extra sensing modality. That is, combining kinematic and reaction force information provides an additional cue that increases the reliability of the resulting internal force estimations. Human beings may be subjected to unpredictable loads, or constrained dynamics resulting from interaction with other objects or other people in the environment. Such circumstances can alter the dynamic representation required to estimate the internal forces and moments at the joints. Some applications for using a recursive method in these circumstances include performing biomechanical studies of lifting tasks and developing controls for assistive devices that aid the physically impaired in everyday tasks. One skilled in the art will appreciate that in-shoe force and pressure sensing devices are complementary technologies that can be used to provide extra sensing modalities for use in various force and moment estimations.

[0044] A. Recursive Method for a Two-Dimensional Serial Chain System

[0045] Embodiments of the present invention are applicable to planar systems including recursive open chain and recursive closed chain. In an open chain system, at most one end of the multi-body system is in contact with the environment. The other end or ends are free or unconstrained. In a closed chain system, more than one end is in contact with the environment.

[0046]FIG. 2 is a free body diagram of forces acting on segments in an open chain, planar serial link system. The system includes first segment 205, second segment 210, and n^(th) segment 215. The segments 205, 210, and 215 are linked by revolute joints. Each of segments 205, 210, and 215 is illustrated as a free body diagram in which first joint 220, second joint 222, third joint 224, and n^(th) joint 226 connect the segments. First segment 205 includes first joint 220 and second joint 222. Second segment 210 includes second joint 222 and third joint 224. In particular, segments 205 and 210 are connected as follows: second joint 222 links first segment 205 with second segment 210. Therefore, a serial chain of n segments is formed by connecting the n segments at the common or overlapping joint.

[0047] For each of joints 220, 222, 224, and 226, the joint torques, the horizontal reaction forces, and the vertical reaction forces at each joint is illustrated and denoted by τ_(i), F_(i), and G_(i) respectively. For example, with respect to first joint 220, the joint torque τ₁ horizontal reaction force F₁, and vertical reaction force G₁ are illustrated. With reference to FIG. 2, an instance of a recursive calculation is now described. In a recursive calculation, a multi-body system is conceptually separated into individual segments. The free body diagram of each segment is analyzed. The segments are connected together by joints, e.g., second joint 222. The reaction forces and moments at, e.g., second joint 222 are shared by first segment 205 and second segment 210. Analysis begins at first segment 205, where the force and moment at the connection point of the second segment 210, i.e., second joint 222 are computed. The calculated forces and moment at second joint 222 are the output of recursion 1. This output is used as input for the analysis of the next segment, e.g., second segment 210. The recursive analysis of segments continues until n^(th) segment 215 is reached. The n^(th) segment 215 is the segment of interest or the segment at which it is desired to stop the recursive computation. In an embodiment where ground reaction forces 115 (FIG. 1) are acting on first segment 205, one computes the forces and moment acting on second joint 222 in terms of the forces and moment acting on first joint 220. Next, one computes the forces and moment acting on third joint 224 in terms of the previously computed forces and moment acting on second joint 222. This recursive procedure of using the output of dynamics calculations as input for the next calculation is repeated until forces and moments have been found for the joint or joints in interest. One skilled in the art will appreciate that n^(th) segment 215 is not necessarily the last segment in the multi-body system. Rather, n^(th) segment 215 is denoted the segment at which it is desired to stop the recursive computation such that the forces and moments of interest are found. It should further be noted that ground reaction forces 115 act at the point of contact, which is not necessarily at the joint. Further details of the calculations are described below and with respect to FIG. 3.

[0048]FIG. 3 is a free body diagram of one segment within the serial link system. Body segment 305 represents the i^(th) segment of a planar serial link system, such as the system illustrated in FIG. 2. Body segment i includes joint i (310) and joint i+1 (315). For isolated body segment i, where i=1 . . . n, the acceleration of the center of mass is ({umlaut over (x)}_(i), ÿ_(i)), the joint angle with respect to the vertical is θ_(i), and the angular acceleration is {umlaut over (θ)}_(i). As illustrated in FIG. 3, the physical parameters for body segment i are mass m_(i), moment of inertia I_(i), segment length l_(i), and length to center of mass k_(i). Also illustrated in FIG. 3 for each of joints 310 and 315 are joint torques τ_(i), horizontal reaction forces F_(i), and vertical reaction forces G_(i). The Newton-Euler equations for computing the forces and moments at each of joints 310 and 315 of body segment i are set forth below as Equation 1, Equation 2, and Equation 3.

m _(i) {umlaut over (x)} _(i) =F _(i) −F _(i+1)  (1)

m _(i) ÿ _(i) =G _(i) −G _(i+1) −m _(i) g  (2)

I _(i){umlaut over (θ)}_(i) =−F _(i) k _(i) cos(θ_(i))+G _(i) k _(i) sin(θ_(i))−F _(i+1)(l _(i) −k _(i))cos(θ_(i))+G _(i+1)(l _(i) −k _(i))sin(θ_(i))+τ_(i) −τ _(i+1)  (3)

[0049] One skilled in the art will appreciate that Equation 1 represents an expression for summing the forces acting on body segment 305 in the x or horizontal direction. Similarly, Equation 2 represents an expression for summing the forces acting on body segment 305 in the y or vertical direction. In Equation 2, the gravitational acceleration is represented by g. Equation 3 represents an expression for summing the angular accelerations acting at joints 310 and 315.

[0050] 1. Inverse Dynamics Methodology

[0051] In inverse dynamics analysis, the forces and moments acting at the joints are computed from measured or desired kinematic data. Kinematic data includes center of mass coordinates and joint angle data. In an embodiment of the present invention, a recursive solution to compute the forces and moments at each joint can be obtained from a compact representation (matrix form) of the Newton-Euler equations as set forth in Equation 4 below. In Equation 4, U_(i)=[F_(i) G_(i) τ_(i)]^(T) is a vector (transposed) whose elements correspond to the horizontal force, vertical force, and moment acting at joint i (310), respectively. The forces and moment at joint i+1 (315) are described by U_(i+1). Further details of a recursive solution for U_(i) or U_(i+1) are described below.

M _(i) {umlaut over (q)} _(i) =A _(i) U _(i+1) +B _(i) U _(i) +P _(i)  (4)

[0052] Vector q_(i)=[x_(i) y_(i) θ_(i)]^(T) represents the center of mass coordinates and joint angle at joint i. One skilled in the art will appreciate that the term {umlaut over (q)}_(i) in Equation 4 represents the second derivative of vector q_(i). The elements of Equation 4 are defined in additional detail as follows: $M_{i} = {{\begin{bmatrix} m_{i} & 0 & 0 \\ 0 & m_{i} & 0 \\ 0 & 0 & I_{i} \end{bmatrix}\quad {\overset{¨}{q}}_{i}} = {{\begin{bmatrix} {\overset{¨}{x}}_{i} \\ {\overset{¨}{y}}_{i} \\ {\overset{¨}{\theta}}_{i} \end{bmatrix}\quad P_{i}} = {\begin{bmatrix} 0 \\ {- m_{i}} \\ 0 \end{bmatrix}g}}}$ $A_{i} = {{\begin{bmatrix} {- 1} & 0 & 0 \\ 0 & {- 1} & 0 \\ {{- \left( {l_{i} - k_{i}} \right)}\cos \quad \left( \theta_{i} \right)} & {\left( {l_{i} - k_{i}} \right)\sin \quad \left( \theta_{i} \right)} & {- 1} \end{bmatrix}\quad U_{i + 1}} = \begin{bmatrix} F_{i + 1} \\ G_{i + 1} \\ \tau_{i + 1} \end{bmatrix}}$ $B_{i} = {{\begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ {{- k_{i}}\cos \quad \left( \theta_{i} \right)} & {k_{i}{\sin \left( \theta_{i} \right)}} & 1 \end{bmatrix}\quad U_{i}} = \begin{bmatrix} F_{i} \\ G_{i} \\ \tau_{i} \end{bmatrix}}$

[0053] 2. Open Chain Estimation

[0054] As described above, an open chain system has one end in contact with the environment. The one end in contact with the environment is termed a constrained end. In an embodiment of the present invention, the constrained end is a human being's feet that are in contact with the ground or other supporting surface. In one embodiment, kinematic data is supplemented with measurements of ground reaction forces 115 (denoted U₁) to improve the precision of the internal force and moment estimations. The segments are numbered from the “ground up” from 1 to n, with n being the last segment of interest. Thus the Newton-Euler inverse dynamics methodology makes use of measurements of the forces and moments under the feet. With U₁ available as a boundary condition at segment 1, the force and moment at segment i, where i has a value from 1 to n (i:1→n) is computed successively with Equation 5, starting with segment 1 and working toward segment n. In an open chain estimation and with n being the last segment in the chain, there are no external forces applied at segment n, such that U_(n+1)=0.

U _(i+1) =A _(i) ⁻¹ [M _(i) {umlaut over (q)} _(i) −B _(i) U _(i) −P _(i)]  (5)

[0055] Due to noisy measurements and errors in the biomechanical model, the boundary condition at the segment that is free is generally violated. In other words, in an open chain embodiment whereby the recursion proceeds from segment 1 to the free segment (denoted by n), then U_(n+1) is not equal to 0. The over-determinacy is resolved by adding residual forces and torques to segment n. An advantage of a recursive formulation, numbering the segments from 1 to n, is that the entire body need not be modeled. The force and moment estimation is complete at segment n regardless of whether segment n is the last segment of the serial system. The parametric uncertainties in the upper extremities and uncertainties in the rigid-body model are significant sources of error in the estimation of the internal forces and moments. These uncertainties in the upper extremities can be avoided, however, when only joint moments proximal to the force plate are desired.

[0056] In another open chain embodiment, only kinematic measurements are available. The segments are labeled from 1 to n, wherein segment 1 has a free end, rather than a constrained end. Because segment 1 has a free end, U₁=0 is available as a boundary condition for the recursion to segment n.

[0057] 3. Closed Chain Estimation

[0058] In another embodiment of the present invention, closed chain estimation is performed. As described above, a closed chain system has more than one end in contact with the environment. In this embodiment, sensor measurements or other initial forces are needed to estimate the internal forces and moments. The segments are serially numbered beginning with segment 1 toward segment n, which is the last segment of interest. The sensor measurement or initial force at segment 1 is denoted U₁, wherein U₁≠0 because the end of segment 1 is constrained. With measurements for U₁ available as a boundary condition at segment 1, the force and moment at segment i, where i has a value from 1 to n (i:1→n) is computed successively with Equation 5, starting with segment 1 and working toward segment n.

[0059] B. Inverse Solution using Nonlinear Feedback

[0060]FIG. 4 is a block diagram of a tracking system for body segment i. Error correction controller 405, inverse dynamics module 410, and forward dynamics module 415 are coupled to form a tracking system. Inputs to error correction controller 405 include kinematic data q_(m) _(i) , {circumflex over ({dot over (q)})}_(m) _(i) , and {circumflex over ({umlaut over (q)})}_(m) _(i) , as well as state variables q_(i) and {dot over (q)}_(i). In an embodiment, the measured or desired kinematics (q_(m) _(i) ) and estimates of their velocities ({circumflex over ({dot over (q)})}_(m) _(i) ) are required. The estimated accelerations ({circumflex over ({umlaut over (q)})}_(m) _(i) ) can be used in noise free applications, but are not required. Error correction controller 405 outputs a modified acceleration {umlaut over (q)}_(i)* as an input to inverse dynamics module 410. Inverse dynamics module 410 has additional inputs of U_(i) and q_(i). The vector U_(i) represents the forces and moment at joint i. The output of inverse dynamics module 410 is force and moment estimates U_(i+1) for joint i+1. Inputs to forward dynamics module 415 include U_(i), U_(i+1), and q_(i). Additionally, the estimated joint force and moment U_(i+1) is used as input during the next iteration, where it is referred to as U_(i) for an incremented i. In each iteration or recursive instance, U_(i) is input and U_(i+1) is output. Forward dynamics module 415 outputs state variables q_(i) and {dot over (q)}_(i). The parameters for the forward dynamics module (i.e., A_(i), M_(i), B_(i), and P_(i)) are identical to the inverse dynamics parameters.

[0061] In an embodiment, joint forces and moments are estimated using inverse dynamics module 410. Equation 6 represents an inverse dynamics control law for recursively calculating joint load information for U_(i+1) using modified acceleration {umlaut over (q)}_(i)*. Forward dynamics module 415 computes the accelerations as in Equation 7 and subsequently numerically integrates the accelerations to obtain the state variables q_(i) and {dot over (q)}_(i) associated with joint i. Error correction controller 405 uses feedback of state variables q_(i) and {dot over (q)}_(i) to generate the modified acceleration {umlaut over (q)}_(i)*. In an embodiment, modified acceleration {umlaut over (q)}_(i)* represents a value computed without taking the second derivative of measured or desired kinematic data. Error correction controller 405 generates the modified acceleration term {umlaut over (q)}_(i)* such that inverse dynamics module 410 computes a set of inputs or controls denoted by U_(i+1) that when applied to forward dynamics module 415 substantially reproduces or tracks the measured or desired kinematic data q_(m) _(i) .

U _(i+1) =A _(i) ⁻¹ [M _(i) {umlaut over (q)} _(i)*−B_(i) U _(i) −P _(i)]  (6)

[0062] The forward dynamics-module 415 performs a simulation to find state variables q_(i) and {dot over (q)}_(i) based on the calculated forces and moment. Specifically, forward dynamics module 415 numerically integrates Equation 7 to find the position and velocity vectors that correspond to the applied joint load information U_(i+1). In one embodiment, numerical integration is performed by an integration function in MATLAB software that is commercially available from The MathWorks, Inc., Natick, Massachusetts. One skilled in the art will appreciate that integration can be performed by many methods, e.g., Runge Kutta methods. The state variables q_(i) and {dot over (q)}_(i) are input to error correction controller 405, which computes modified acceleration {umlaut over (q)}_(i)* for the current time step. Starting with initial conditions q_(i) (0) and continuing to an endpoint, error correction controller 405 forces the tracking error between the simulated and measured (or desired) kinematics to approach zero.

{umlaut over (q)} _(i) =M _(i) ⁻¹ [A _(i) U _(i+1) +B _(i) U _(i) +P _(i)]  (7)

[0063] One skilled in the art will appreciate that the described equations, expressions, modules, or functions can be implemented in a general-purpose computer, special purpose computer, or hardware. In an embodiment, a software programmable general-purpose computer implements features of the invention. The software is preferably distributed on a computer readable medium, which includes program instructions. A computer readable medium includes, for example, a computer readable storage volume. The computer readable storage volume can be available via a public computer network, a private computer network, or the Internet. One skilled in the art will appreciate that the program instructions can be in any appropriate form, such as source code, object code, or scripting code.

[0064]FIG. 5 is a block diagram of a tracking system for body segment i illustrating further details of an error correction controller. In the illustrated embodiment, error correction controller 405 comprises modules that implement Equation 8, where parameter K_(p) _(i) represents the positional feedback gain and parameter K_(v) _(i) represents the velocity feedback gain. A difference module 510 is configured to generate an error value e_(i) (defined in Equation 12) and a derivative error value {dot over (e)}_(i) from the kinematics obtained from simulation and measured (or desired) kinematics. In the error correction controller 405, error value e_(i) is multiplied by positional feedback gain K_(p) _(i) and the derivative error value {dot over (e)}_(i) is multiplied by velocity feedback gain K_(v) _(i) to generate modified acceleration {umlaut over (q)}_(i)*. Parameters K_(p) _(i) and K_(v) _(i) are defined in Equations 9 and 10 as constant diagonal matrices that control Equations 1, 2, and 3.

{umlaut over (q)} _(i) *=a{umlaut over (q)} _(m) _(i) +K _(v) _(i) ({dot over (q)} _(m) _(i) −{dot over (q)} _(i))+K _(p) _(i) (q _(m) _(i) −q _(i))  (8)

[0065] $\begin{matrix} {K_{p_{i}} = \begin{bmatrix} k_{p_{x}} & 0 & 0 \\ 0 & k_{p_{y}} & 0 \\ 0 & 0 & k_{p_{\theta}} \end{bmatrix}} & (9) \\ {K_{v_{i}} = \begin{bmatrix} k_{\upsilon_{x}} & 0 & 0 \\ 0 & k_{\upsilon_{y}} & 0 \\ 0 & 0 & k_{\upsilon_{\theta}} \end{bmatrix}} & (10) \end{matrix}$

[0066] The parameter a is included to study the effect of including accelerations (a=1) and excluding accelerations (a=0) during the simulation. One skilled in the art will appreciate that when parameter a is set equal to zero the second derivative of the kinematic data, the estimated accelerations term {umlaut over (q)}_(m) _(i) , is ignored in Equation 8. Therefore, in such a case, only modified acceleration {umlaut over (q)}_(i)* is used in the tracking system. An advantage of not using the second derivative of noisy kinematic data is improved accuracy of force and moment estimation.

[0067]FIG. 6 is a flowchart illustrating a recursive tracking process. The initial value of i is 1 for a serial link system with n segments of interest. As described above, n represents the last segment of interest, i.e., the stopping point for the recursion. The process begins with step 605. Measured or desired kinematics are obtained 610 for segment i. As described above, segment i has joints labeled i and i+1. Next, modified acceleration {umlaut over (q)}_(i)* is computed 615 at joint i using an embodiment of the feedback structure described above. An inverse dynamics analysis is performed 620 to obtain forces and moment at joint i+1. In the recursion instance where i=1, reaction force/moment at joint 1 provides input into step 620 as U₁. In other recursion instances where i≠1 and i+1<n, the joint load information for joint i+1 (represented as concatenated vector U_(i+1)) is applied as input U_(i) for the next body segment in another recursion instance. U_(i+1) is applied 625 to a forward dynamics analysis to obtain the simulated kinematic data at joint i. The process determines 630 whether additional recursion is needed. If i+1 is equal to n then control proceeds to step 635 where the recursion ends, otherwise the value of i is incremented by 1 in step 640 and control returns to step 605 where another recursion instance performs the tracking process for the next body segment.

[0068] C. Forward Prediction of Novel Motions

[0069] In an embodiment of the present invention, the simulation of the dynamic equation of motion, produced by the forward dynamics module, can be used to predict novel movements. The simulated kinematic data represents segmental position and velocity data from the estimated joint load (including forces and moments). The forward dynamics module, therefore, can be configured to simulate novel movements of body segments in response to applied forces and moments.

[0070] Various parameters in the forward model can be altered and the effects on the simulated response can be observed. For example, changing segment parameters such as mass, inertia, length, and center of mass in forward dynamics module 415 effects the kinematic response. This type of predictive capability enables study of the sensitivity of forward dynamics module 415 to the physical parameters.

[0071] D. Error Dynamics

[0072] The joint torque and force estimation problem is described herein in an embodiment as a tracking system using a nonlinear feedback control law described by Equation 6. To demonstrate the tracking performance, it is instructive to consider the closed loop error dynamics. With reference to FIG. 5, the output of the inverse dynamics module U_(i+1), represents the control law of Equation 6. If this control law is applied to the forward dynamics module (by substitution in Equation 4), the closed loop relation of Equation 11 is obtained. Equation 12 defines e_(i) as the error between the measured kinematics q_(m) _(i) and the simulated state variable q_(i), which is obtained by integration in the forward dynamics module 415. The error dynamics for several scenarios are described below.

a{umlaut over (q)} _(m) _(i) −{umlaut over (q)} _(i) +K _(v) _(i) ({dot over (q)} _(m) _(i) −{dot over (q)} _(i))+K _(p) _(i) (q _(m) _(i) −q _(i))=0  (11)

e _(i) =q _(m) _(i) −q _(i)  (12)

[0073] 1. Accelerations Included: a=1

[0074] In an ideal situation of perfect measurements and zero error in numerical differentiation, the closed loop error dynamics are defined in differential Equation 13.

ë _(i) +K _(v) _(i) e _(i) +K _(p) _(i) =0  (13)

[0075] The error dynamics of state variable q_(i) can be independently controlled by eigenvalue assignment. Let λ₁ and λ₂ denote the eigenvalues of the Equation 13. Equation 14 provides a critically damped solution, i.e., no sinusoidal oscillations, with real and equal eigenvalues. This solution yields the fastest non-oscillatory response.

e(t)=c ₁ e ^(λ) ^(₁) ^(t) +c ₂ te ^(λ) ^(₂) ^(t)  (14)

[0076] The relationship between K_(p) and K_(v) to achieve a critically damped response is set forth in Equation 15.

K _(v)=2{square root}{square root over (K_(p))}  (15)

[0077] In an embodiment, proper tracking and calculation time can be achieved with eigenvalues having a value of 100. Simulation results with both small and large feedback gains are described below and with respect to FIGS. 8-23.

[0078] 2. Accelerations Ignored: a=0

[0079] Suppose the accelerations estimated from the measured kinematics are ignored by setting a=0. The closed loop error dynamics are expressed by non-homogeneous differential Equation 16.

ë _(i) +K _(v) _(i) {dot over (e)} _(i) +K _(p) _(i) ={umlaut over (q)} _(m) _(i)   (16)

[0080] Although the solution to Equation 16 contains a forcing term, assuming the acceleration term {umlaut over (q)}_(m) _(i) is bounded, the error converges to zero by assigning the eigenvalues of Equation 16 to have negative and real parts. As before where accelerations were included, the feedback gains can be appropriately designed for a critically damped response using the relation given in Equation 15.

[0081] 3. Incorporating Derivative Estimation Error

[0082] In the above formulation of the error equations, it is assumed that the derivative term {dot over (q)}_(m) _(i) and acceleration term {umlaut over (q)}_(m) _(i) can be precisely calculated by differentiating the kinematic data. Indeed, errors in numerical differentiation of noisy kinematic measurements cannot be ignored and are considered in the following formulation.

[0083] Let ε_(v) and ε_(a) represent the bounded error in the velocity and acceleration computations. The estimates {dot over ({circumflex over (q)})}_(m) _(i) and {umlaut over ({circumflex over (q)})}_(m) _(i) are expressed as follows in Equation 17:

{dot over ({circumflex over (q)})} _(m) _(i) ={dot over (q)} _(m) _(i) +ε_(v)  (17)

{umlaut over ({circumflex over (q)})} _(m) _(i) ={dot over (q)} _(m) _(i) +ε_(a)  

[0084] The closed loop dynamics incorporating the derivative estimation error is given by Equation 18.

a{umlaut over ({circumflex over (q)})} _(m) _(i) −{umlaut over (q)} _(i) +K _(v) _(i) ({dot over ({circumflex over (q)})} _(m) _(i) −{dot over (q)} _(i) )+K _(p) _(i) (q _(m) _(i) −q _(i))=0  (18)

[0085] Substituting Equation 17 into Equation 18, the following Equation 19 is derived.

a{umlaut over (q)} _(m) _(i) −{umlaut over (q)} _(i) +K _(v) _(i) ({dot over (q)} _(m) _(i) −{dot over (q)} _(i))+K _(p) _(i) (q _(m) _(i) −q _(i))=−(aε _(a) +K _(v) _(i) ε_(v))  (19)

[0086] The error dynamics for a=0 and a=1 are given by Equations 20 and 21.

ë _(i) +K _(v) _(i) {dot over (e)} _(i) +K _(p) _(i) =−K _(v) _(i) ε_(v) +{umlaut over (q)} _(m) _(i) a=0  (20)

ë _(i) +K _(v) _(i) {dot over (e)} _(i) +K _(p) _(i) =−(ε _(a) +K _(v) _(i) ε_(v))a=1  (21)

[0087] E. Closed Form System Dynamics

[0088] In a further embodiment, the tracking system can be applied to closed form dynamics. The closed form system equations for an unconstrained rigid body system are described by n differential equations in the matrix form of Equation 22. In Equation 22, M corresponds to the mass matrix, and P corresponds to the contributions due to the coriolis, centrifugal, and gravity terms, respectively. The inputs U correspond to the net joint torques. Similar to the recursive embodiments described herein, the control law of Equation 23 is used to linearize and to decouple the system dynamics. The {umlaut over (q)}* term of Equation 23 is defined in Equation 24, wherein K_(p) and K_(v) are n×n diagonal matrices configured to have a critically damped response.

M{umlaut over (q)}=U+P  (22)

U=M{umlaut over (q)}*−P  (23)

{umlaut over (q)}*=a{umlaut over (q)} _(m) +K _(v)({dot over (q)} _(m) −{dot over (q)})+ K _(p)(q _(m) −q)  (24)

[0089] F. Simulation of Open Chain Planar System

[0090]FIG. 7 is a free body diagram illustrating a three segment, two-dimensional open chain system. The three segments include human shank 705, thigh 710, and trunk 715 segments. Ankle joint 720 is assumed to be hinged to the ground. Knee joint 725 connects shank 705 and thigh 710. Hip joint 730 connects thigh 710 and trunk 715. A simulation is described to demonstrate the performance of an embodiment of the tracking system for estimating joint forces and moments. The selected system parameters are typical for those of an average male with a height of 1.7 m and a body weight of 74 kg. The simulated motion considered here is a squatting motion about the ankle, knee, and hip joints, 720, 725, and 730. The objective is to use U₁ as a constraint to initiate the recursion, and to compute iteratively U₂=[F₂ G₂ τ₂]^(T) and U₃=[F₃ G₃ τ₃]^(T). The required vector of joint moments and forces is denoted by U=[u₁ u₂ u₃]^(T). To generate the reference trajectories, the recorded motion of an average male performing the squatting motion is used. One skilled in the art will appreciate how to capture and to record a squatting motion using conventional techniques. The Newton-Euler equations of motion for each isolated body segment are described as follows in Equations 25-33:

[0091] 1. Segment 1: Shank 705

m ₁ {umlaut over (x)} ₁ =F ₁ −F ₂  (25)

m _(1ÿ) ₁ =G ₁ −G ₂ −m ₁ g  (26)

I ₁{umlaut over (θ)}₁ =−F ₁ k ₁ cos(θ₁)+G ₁ k ₁ sin(θ₁)−F ₂(l ₁ −k ₁)cos(θ₁)+G ₂(l ₁ −k ₁)sin(θ₁)+u ₁ −u ₂  (27)

[0092] 2. Segment 2: Thigh 710

m ₂ {umlaut over (x)} ₂ =F ₂ −F ₃  (28)

m _(2ÿ) ₂ =G ₂ −G ₃ −m ₂ g  (29)

I ₂{umlaut over (θ)}₂ =−F ₂ k ₂ cos(θ₂)+G ₂ k ₂ sin(θ₂)−F ₃(l ₂ −k ₂)cos(θ₂)+G ₃(l ₂ −k ₂)sin(θ₂)+u ₂ −u ₃  (30)

[0093] 3. Segment 3: Trunk 715

m ₃ {umlaut over (x)} ₃ =F ₃  (31)

m ₃ ÿ ₃ =G ₃ −m ₃ g  (32)

I ₃{umlaut over (θ)}₃ =−F ₃ k ₃ cos(θ₃)+G ₃ k ₃ sin(θ₃)+u₃  (33)

[0094] The simulation is designed to compare tracking system performance with the traditional inverse dynamics approach. The inputs include the kinematic data for the squatting motion as well as ground reaction forces. In the described simulation, tracking system performance is examined for two cases: when the acceleration estimates are included (a=1 in FIG. 5), and when the acceleration estimated are ignored (a=0 in FIG. 5). To maintain consistency, it is assumed that the ground reaction measurements are ideal and are obtained analytically. The analytically computed ground reaction vector U₁=[F₁ G₁ τ₁]^(T) is obtained using the recursion equations starting from trunk 715 and working toward the ground as described above. Using U₁ as a constraint, U₂ and U₃ are recursively estimated. The simulation is performed for two different sets of feedback gains matrices, which produce a critically damped response. Simulation results are illustrated in FIGS. 8-23.

[0095] In the simulations illustrated by FIGS. 8-15, the small feedback gain values of Equation 34 are used. The reference joint displacement data has been smoothed for convenience of illustration. As described above, including the acceleration estimates is often undesirable because inverse dynamics analysis requires calculation of higher order derivatives that cause erroneous results. Each of the dotted curves of FIGS. 8-11 correspond to simulated tracking accuracy where desired accelerations are ignored (a=0). In both the displacement graphs of FIGS. 8 and 9 and the force and moment graphs of FIGS. 10 and 11, when accelerations are ignored, the simulated result using small feedback gains exhibits poor tracking performance. As illustrated in FIGS. 12-15, the tracking performance and the estimated joint moments are exceptionally good when the desired accelerations are included (a=1). $\begin{matrix} {K_{p} = {K_{v} = \begin{bmatrix} 1 & 0 & 0 \\ 0 & 1 & 0 \\ 0 & 0 & 1 \end{bmatrix}}} & (34) \end{matrix}$

[0096] In contrast to FIGS. 8-11, the simulations illustrated by FIGS. 16-19 achieve excellent tracking performance. In these simulations, the feedback gains are increased to achieve improved results for the case when desired accelerations are ignored (a=0). Equations 35 and 36 set forth in parameters. In both the displacement graphs of FIGS. 16 and 17 and the force and moment graphs of FIGS. 18 and 19, each of the dotted curves representing simulated tracking accuracy where acceleration estimates are excluded (a=0) is substantially indistinguishable from the reference data. Embodiments of nonlinear feedback estimation of joint forces and moments are illustrated to be effective without requiring, for example, higher order derivatives of noisey measurement data. $\begin{matrix} {K_{p} = \begin{bmatrix} 1600 & 0 & 0 \\ 0 & 1600 & 0 \\ 0 & 0 & 1600 \end{bmatrix}} & (35) \\ {K_{v} = \begin{bmatrix} 80 & 0 & 0 \\ 0 & 80 & 0 \\ 0 & 0 & 80 \end{bmatrix}} & (36) \end{matrix}$

[0097]FIG. 24 is a graph illustrating tracking error for the displacement of the ankle joint of FIG. 7. In the illustration, the dotted curve corresponds to the absolute value of the mean tracking error when the desired accelerations are included (a=1). The solid curve corresponds to the absolute value of the mean tracking error when acceleration estimates are excluded (a=0). For each of several values of K_(p), the mean tracking error (over the duration of the simulation) between the desired and simulated angle was computed. For each of the data points, the absolute value of the mean error was calculated to generate the graph. In the illustrated case where acceleration estimates are excluded (a=0), the mean tracking error for the displacement of ankle joint 720 converges to zero with increasing values of K_(p). Mean tracking error for other angles and states are not specifically illustrated because one skilled in the art will recognize that similar results are produced.

[0098] The present invention may be embodied in many different forms and should not be construed as limited to the embodiments set forth herein. Rather these embodiments are provided so that this disclosure will be thorough and complete and will fully convey the invention to those skilled in the art. For example, one skilled in the art will appreciate that the tracking systems and methods described can be extended to three-dimensional systems. Further, conventional muscle force distribution methods can be embedded in, e.g., forward dynamics module 415 (FIG. 4). The output of a muscle force distribution module could then drive the forward simulation. Alternatively, a muscle force distribution module can tap the output of the inverse dynamics module 410 (FIG. 4) and not be used in the forward simulation.

[0099] Further, the apparatus and methods described are not limited to rigid bodies. One skilled in the art will recognize that the principles of the present invention can be applied to other systems that can be characterized by Equation 22. Embodiments of feedback estimation track data from systems governed by the second-order differential of a data set.

[0100] Having described preferred embodiments of feedback estimation of joint forces and joint moments (which are intended to be illustrative and not limiting), it is noted that modifications and variations can be made by persons skilled in the art in light of the above teachings. It is therefore to be understood that changes may be made in the particular embodiments of the invention disclosed that are within the scope and spirit of the invention as defined by the appended claims and equivalents. 

What is claimed is:
 1. A method for tracking data from a second-order differential system, the method comprising steps of: obtaining at least one joint torque; calculating a modified acceleration using the at least one joint torque; and determining simulated kinematic data using a control law.
 2. The method of claim 1 wherein the control law comprises a function of the modified acceleration to linearize and to decouple system dynamics.
 3. The method of claim 1 wherein the step of calculating a modified acceleration further comprises applying a feedback gain to the modified acceleration.
 4. A method for determining an estimated joint load, the method comprising steps of: obtaining kinematic data for a joint; obtaining an input force for the joint; computing a modified acceleration using at least the kinematic data; performing an inverse dynamics analysis to produce the estimated joint load, the inverse dynamics analysis using at least the modified acceleration and the input force; and performing a forward dynamics analysis on the estimated joint load to determine simulated kinematic data for the joint.
 5. The method of claim 4 wherein the kinematic data comprises center of mass coordinates and a joint angle.
 6. The method of claim 4 wherein the input force comprises a ground reaction force.
 7. The method of claim 6 further comprising: determining a joint of interest; beginning with the ground reaction force, estimating an adjacent joint load; and repeating the estimating until the adjacent joint is the joint of interest.
 8. The method of claim 4 wherein the input force comprises force plate measurement.
 9. The method of claim 4 wherein the input force is equal to zero.
 10. The method of claim 4 wherein the input force acts at a point of contact on a segment.
 11. The method of claim 4 wherein the input force comprises at least one of an internal force and an internal moment.
 12. The method of claim 4 wherein the input force comprises a joint torque.
 13. The method of claim 4 wherein the step of computing a modified acceleration further comprises the steps of: computing an error value representing a difference between the simulated kinematic data and the measured kinematic data; and applying a feedback gain to the error value.
 14. The method of claim 13 wherein the feedback gain comprises at least one of a positional feedback gain and a velocity feedback gain.
 15. The method of claim 4 wherein the step of performing a forward dynamics analysis further comprises performing an integration of the estimated joint load.
 16. The method of claim 4 further comprising the step of using feedback of the simulated kinematic data in computing the modified acceleration.
 17. The method of claim 4 further comprising the step of using feedback of the simulated kinematic data in performing the inverse dynamics analysis.
 18. The method of claim 4 further comprising the step of using feedback of the simulated kinematic data in performing the forward dynamics analysis.
 19. The method of claim 4 further comprising the steps of: obtaining kinematic data for a second joint; computing a second modified acceleration using at least the kinematic data for the second joint; performing an inverse dynamics analysis to produce a second estimated joint load, the inverse dynamics analysis using at least the second modified acceleration and the estimated joint load; and performing a forward dynamics analysis on the second estimated joint load to obtain simulated kinematic data for the second joint.
 20. An apparatus for determining an estimated joint load, the apparatus comprising: an error correction controller configured to calculate a modified acceleration using at least kinematic data; an inverse dynamics module including an input force, the module configured to determine the estimated joint load using at least the modified acceleration and the input force; and a forward dynamics module configured to determine simulated kinematic data for a joint using at least the estimated joint load.
 21. The apparatus of claim 20 wherein the forward dynamics module comprises: a difference module configured to generate an error value from the simulated kinematic data and the kinematic data; and a feedback gain configured to determine the modified acceleration responsive to the error value.
 22. The apparatus of claim 21 wherein the feedback gain comprises at least one of a positional feedback gain and a velocity feedback gain.
 23. The apparatus of claim 20 wherein the estimated joint load in a first recursive instance is coupled to the input force of a second recursive instance.
 24. The apparatus of claim 20 wherein the error correction controller receives the simulated kinematic data as feedback.
 25. The apparatus of claim 20 wherein the inverse dynamics module receives the simulated kinematic data as feedback.
 26. The apparatus of claim 20 wherein the forward dynamics module receives the simulated kinematic data as feedback.
 27. The apparatus of claim 20 wherein the forward dynamics module is configured to integrate the estimated joint load to determine the simulated kinematic data.
 28. The apparatus of claim 20 wherein the input force comprises a ground reaction force.
 29. The apparatus of claim 20 wherein the input force comprises force plate measurement.
 30. The apparatus of claim 20 wherein the input force is equal to zero.
 31. The apparatus of claim 20 wherein the input force acts at a point of contact on a segment.
 32. The apparatus of claim 20 wherein the input force comprises at least one of an internal force and an internal moment.
 33. The apparatus of claim 20 wherein the input force comprises a joint torque.
 34. A computer readable medium comprising: program instructions for obtaining kinematic data for a joint; program instructions for obtaining an input force for the joint; program instructions for computing a modified acceleration using at least the kinematic data; program instructions for performing an inverse dynamics analysis to produce the estimated joint load, the inverse dynamics analysis using at least the modified acceleration and the input force; and program instructions for performing a forward dynamics analysis on the estimated joint load to determine simulated kinematic data for the joint.
 35. The computer readable medium of claim 34 further comprising: program instructions for computing an error value representing a difference between the simulated kinematic data and the kinematic data; and program instructions for applying a feedback gain to the error value. 